home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1998 August: Tool Chest / Dev.CD Aug 98 TC.toast / Sample Code / Devices / Async driver tester / LinkedList.c < prev    next >
Encoding:
C/C++ Source or Header  |  1997-06-18  |  772 b   |  47 lines  |  [TEXT/CWIE]

  1. #include "LinkedList.h"
  2.  
  3. myListPtr NewList (void) {
  4.     return (myListPtr)NewPtrClear (sizeof (myList));
  5. }
  6.  
  7. void AppendToList (void *itemToInsert, myListPtr listToUse) {
  8.     myListPtr    temp,
  9.                 prev,
  10.                 newNode;
  11.  
  12.     if (listToUse != nil) {
  13.         temp = listToUse->next;
  14.         prev = listToUse;
  15.     }
  16.  
  17.     while (temp != nil) {
  18.         prev = temp;
  19.         temp = temp->next;
  20.     }
  21.  
  22.     newNode = (myListPtr)NewPtrClear (sizeof (myList));
  23.     if (newNode != nil) {
  24.         newNode->data = itemToInsert;
  25.         prev->next = newNode;
  26.     }
  27. }
  28.  
  29. void* GetItemNumFromList (long num, myListPtr listToUse) {
  30.     myListPtr    temp = listToUse;
  31.     long        i;
  32.  
  33.     if (temp != nil) {
  34.         for (i = 0; i < num; i++) {
  35.             if (temp->next != nil) {
  36.                 temp = temp->next;
  37.             } else {
  38.                 return nil;
  39.             }
  40.         }
  41.         return temp->data;
  42.     } else {
  43.         return nil;
  44.     }
  45. }
  46.  
  47.